In recent years, processing systems have developed rapidly. When a processing system is powered-up, certain components of the system must be initialized. The processing system retrieves instructions from initialization software or programs located within the system's memory.
The memory of a processing system typically may be differentiated into two types: main memory and secondary storage. The main memory is generally implemented as random access memory (RAM) or read only memory (ROM), which is relatively fast and capable of being read or written substantially in real time. Secondary storage is commonly implemented using a mechanical system employing a magnetic storage medium, such as a diskette or a hard drive. Compared to the main memory, access to the secondary storage is typically slow.
In prior initialization systems and methods, the initialization programs were stored in main memory. More specifically, initialization programs were stored in a one time programmable (OTP) ROM and loaded into a shadow RAM at power up of the processing system. However, these prior initialization systems were inflexible. In other words, if the initialization programs in the OTP ROM were defective, successful initialization of the processing system was impossible until the OTP ROM was replaced.
Accordingly, a need has arisen for an improved initialization system and method for initializing a processing system.